const { CHANGE_NAME, ADD_COUNTER } = require('./constants')

// c初始化数据
const initialState = {
  name: 'why',
  counter: 100,
}

// 定义reduer函数: 纯函数
// 两个参数： 1.store中目前保存的store, 2.本次需要更新的action(dispatch传入的action)
// 返回值：他的返回值作为store中之后存储的state
// 第一次调用时state为undefined，因此使用默认参数指定初始值
function reducer(state = initialState, action) {
  console.log(state, action)
  // 有新数据更新，返回一个新的state
  switch (action.type) {
    case CHANGE_NAME:
      return { ...state, name: action.name }
    case ADD_COUNTER:
      return { ...state, counter: action.num }
    default:
      // 没有新数据更新，那么返回之前的store
      return state
  }
}

module.exports = reducer
